// 引入axios
import axios from "axios"
// 用于跳转页面
import {history} from "umi"
// 配置axios
let http = axios.create({
    // 基础地址
    baseURL:"/api",
    // 是否携带数据
    withCredentials:true,
    // 超时设置
    timeout:1000*20,
})
// 配置拦截器
//请求拦截器,所有的axios请求都会被拦截器拦截,可以通过拦截器添加额外的配置
http.interceptors.request.use((config:any)=>{
    // console.log(config)
    // 携带token过去
    let token = JSON.parse(localStorage.getItem('qf-token')as string)
    config.headers!.authorization = token as string
    return config
})
//响应拦截器,所有的axios响应都会被响应拦截器拦截,可以对拦截的响应进行额外的配置
http.interceptors.response.use((config :any)=>{
    // console.log(config);
    // 判断登录失效的情况 10022（登录状态过期） 1004(token失效了）前后端通俗约定状态码，并不是http状态码
    if(config.data.code == '10022' || config.data.code == '1004'){
        // 退到登录页，清掉token
        history.push('/login')
        localStorage.removeItem('qf-token')
        // 刷新页面,清掉缓存
        window.location.reload()      
    }
    return config  
})
export default http;